home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / asm / asmflo.com / MANUAL.DOC < prev    next >
Encoding:
Text File  |  1988-04-21  |  12.6 KB  |  445 lines

  1.  
  2.  
  3.  
  4.                                ASMFLOW
  5.  
  6.  
  7.  
  8.                An Assembly Language Programmer's Tool
  9.  
  10.                    for the IBM PC and compatibles
  11.  
  12.  
  13.  
  14.                      Fully working Demo Version
  15.                         with condensed manual
  16.  
  17.                   (C)Copyright Quantum Software 1988
  18.  
  19.                            Quantum Software
  20.                   19855 Stevens Creek Blvd, suite 154
  21.                           Cupertino, CA 95014
  22.                             (408) 244-6826
  23.  
  24.  
  25.  
  26.  
  27.                           INTRODUCTION
  28.  
  29.  
  30.     ASMFLOW is a program for IBM PC (or compatible) assembly
  31.     language programmers.  The program is intended for novice to
  32.     expert programmers.  ASMFLOW generates flow charts, tree
  33.     diagrams and provides a variety of other functions.  All
  34.     features are implemented by performing static source code
  35.     analysis.  In other words, only the source code is examined
  36.     without actually running the target software.
  37.  
  38.  
  39.     The major program features are:
  40.  
  41.               - Flow charts
  42.               - Tree Diagrams
  43.               - Approximate Machine Cycle Information
  44.               - Stack Size determination
  45.               - Recursion detection
  46.               - CPU Register analysis
  47.               - Procedural Cross-reference
  48.               - Listings of Externals, non-Publics,
  49.                 Externals not used
  50.               - Instruction Histograms
  51.  
  52.  
  53.  
  54.  
  55.                                Setup
  56.  
  57.  
  58.     ASMFLOW.EXE runs by itself and needs no support files.
  59.  
  60.     All other files are for information only.
  61.  
  62.  
  63.   Hard disk systems
  64.  
  65.     Copy ASMFLOW.EXE to the directory where you do assembly
  66.     language work, or to a directory that is in your path.
  67.  
  68.   Floppy disk systems
  69.  
  70.     Copy ASMFLOW.EXE to a disk with your assembler on it or
  71.     on to its own disk.  If you use menu operation, then you
  72.     can swap disks after the program starts.
  73.  
  74.  
  75.   Operation
  76.  
  77.     ASMFLOW can be run in two modes:
  78.  
  79.          1) menu operation (Chapter 2)
  80.          2) command line operation (Chapter 3)
  81.  
  82.     To start in menu mode:
  83.  
  84.           ASMFLOW
  85.  
  86.     To start in command line mode:
  87.  
  88.           ASMFLOW source
  89.  
  90.           where: source is the name of your assembly
  91.                  language source file
  92.  
  93.  
  94.  
  95.  
  96.                          MENU OPERATION
  97.  
  98.  
  99.     Menu operation is automatically assumed if no filename
  100.     is entered on the command line.  You may optionally type
  101.     any number of command line qualifiers or switches from
  102.     the command line or a batch file.
  103.  
  104.     All setup features can be seen on the one setup menu.
  105.     Once in the menu, operation is very simple.  Move the
  106.     highlight bar to any field, then edit it.  There are
  107.     three types of fields:
  108.  
  109.         1) file names
  110.         2) numbers
  111.         3) multiple choice
  112.  
  113.     The bottom of the screen prompts you for the correct
  114.     method for editing each type of field.
  115.  
  116.  
  117.     Help while in the menu
  118.  
  119.     Press F1 at any time while in the setup menu to get
  120.     context sensitive help.  Press F2 to get a general
  121.     help screen.
  122.  
  123.  
  124.     Saving your setups
  125.  
  126.     After you have selected all the program options for a
  127.     particular run you can save these setups in a file.  To
  128.     do this press F3.  You will be prompted for the name of
  129.     a batch file.  If no file type is given, then .BAT is
  130.     used.  Once you have created the batch file, it can be
  131.     used just the same as the ASMFLOW program.  If you type
  132.     in the name of the batch file with no file name
  133.     parameter then the menu mode is started, with all your
  134.     setups preset.  If you enter a file name parameter then
  135.     the program is run directly from the batch file with all
  136.     your setups.
  137.  
  138.  
  139.  
  140.  
  141.               Summary of the Setup Menu Options
  142.  
  143.     Input type
  144.  
  145.          ASM     The file is a source file
  146.          List    The file contains a list of .ASM files
  147.          Make    The file is a Make File
  148.  
  149.  
  150.     Input File
  151.  
  152.          This is the name of the input file.
  153.  
  154.  
  155.     Output type
  156.  
  157.          Screen  Output to the screen
  158.          File    Output to a file (named below)
  159.  
  160.  
  161.     Output File
  162.  
  163.          This is the name of the output file, if FILE
  164.          is selected above.
  165.  
  166.  
  167.     Flow Charts
  168.  
  169.          Off       No flow chart
  170.          Single    Single-spaced compact flow chart
  171.          Double    Double-spaced flow chart
  172.          Charts    Conventional flow chart diagram
  173.  
  174.  
  175.     Comments
  176.  
  177.          No        Comments not printed
  178.          Yes       Print comments in flow charts
  179.  
  180.  
  181.     Tree Diagram
  182.  
  183.          Off       No tree diagram
  184.          Single    Single-spaced tree diagram
  185.          Double    Double-spaced tree diagram
  186.          Box       Procedures Boxed in tree diagram
  187.  
  188.  
  189.  
  190.     Duplicates
  191.  
  192.          No        No duplicates trees
  193.          Yes       Print all duplicate trees
  194.  
  195.  
  196.     Macros
  197.  
  198.          No        Macros ignored in trees
  199.          Yes       Treat macro calls like procedure calls
  200.  
  201.  
  202.     Stack
  203.  
  204.          No        Do not calculate stack depth
  205.          Yes       Calculate stack depth
  206.  
  207.  
  208.     Nesting
  209.  
  210.          integer   Max tree depth to display.  For Boxed
  211.                    trees this is the level where the tree
  212.                    reverts to a single spaced tree.
  213.                    (Legal values: 2 - 16)
  214.  
  215.  
  216.     Graphics Char set
  217.  
  218.          integer   Graphical character set.  See help
  219.                    for examples.
  220.  
  221.  
  222.     Printer type
  223.  
  224.          integer   Zero is the default value.  Other values
  225.                    are reserved for printers requiring special
  226.                    configurations.  Laser printers and Epson
  227.                    printers require no special configuration.
  228.  
  229.  
  230.     Page length
  231.  
  232.          integer   Number of lines on a printed page.
  233.                    Use 0 for continuous non-paged output.
  234.  
  235.  
  236.     Page Width
  237.  
  238.          integer   Width of a printed page.  Use 80
  239.                    for the screen.  Must be 80 - 132.
  240.  
  241.  
  242.  
  243.     Xref
  244.  
  245.          Off       No cross-reference listings.
  246.          Procedure List of all procedures that call a
  247.                    given procedure.
  248.          Labels    List of labels defined in a procedure
  249.          Both      Both procedures and labels
  250.  
  251.  
  252.     Extrn
  253.  
  254.          No        No Listings.
  255.          Yes       List of all Externals, externals not
  256.                    used, all publics and all items that
  257.                    are not public by type.
  258.  
  259.  
  260.     Registers
  261.  
  262.          Off       no register information
  263.          I/O       register inputs/outputs to each procedure
  264.          All       complete register summary for each procedure
  265.  
  266.  
  267.     Instructions
  268.  
  269.          Off       no instruction histogram
  270.          Brief     histogram based on 16 categories of
  271.                    instructions
  272.          All       histogram based on 35 categories of
  273.                    instructions and directives
  274.  
  275.     Clock cycles
  276.  
  277.          Off       no clock cycle information
  278.          8088      calculate cycles for 8088/8087
  279.          80286     calculate cycles for 80286/287
  280.          80386     calculate cycles for 80386/387
  281.          All       calculate cycles for all 3 processor sets
  282.  
  283.  
  284.     Warnings
  285.  
  286.          No        no warnings
  287.          Yes       display programming style warnings
  288.  
  289.  
  290.  
  291.  
  292.  
  293.                     COMMAND LINE OPERATION
  294.  
  295.  
  296.     Command line operation is provided for several reasons.
  297.     First, it can be run unattended from batch files.
  298.     Second, it is the fastest method of operation.  Finally,
  299.     the program can be run as a child process with the
  300.     output redirected, then read by the parent process.
  301.     Menu operation is suggested for learning the features of
  302.     the program and creating batch files by saving your
  303.     setups.
  304.  
  305.  
  306.     Although command line operation is somewhat confusing
  307.     and may be difficult to learn, the following tips will
  308.     help you understand how to use command line operation:
  309.  
  310.     o All switches must be preceeded by a forward slash (/)
  311.       and may appear anywhere on the command line
  312.  
  313.     o Except as noted below, all switches consist of a
  314.       single letter (case ignored) optionally followed by
  315.       one or more digits
  316.  
  317.     o If a switch is not followed by a digit then the value
  318.       of one is assumed
  319.  
  320.     o In general, a zero value causes less processing and no
  321.       printing and higher numeric values causes more printing
  322.  
  323.     o A switch that consists of only a digit, sets all
  324.       switches to that value (i.e. /0 sets all to zero)
  325.  
  326.     o If a switch is set to a value less than its minimum or
  327.       greater than its maximum then it is set to the
  328.       boundary value
  329.  
  330.     o Most switches have a mneumonic meaning, shown on the
  331.       next page
  332.  
  333.  
  334.  
  335.                         Command Line summary
  336.  
  337.  
  338.     Command Syntax:
  339.  
  340.     ASMFLOW [[@|$]<source>] [<proc> [<proc>]...] [<optional switches>]
  341.  
  342.    switches:
  343.  
  344.     /A     Approximate machine cycle info (0-4)
  345.     /C     Comments included in flow charts
  346.     /D     Duplicates in tree diagram
  347.     /E     Extrn and public listings
  348.     /F     Flow chart (0-3)
  349.     /G     Graphics char set (0-4)
  350.     /H     Help for command line operation
  351.     /I     Instruction breakdown (0-2)
  352.     /K     printer column width  (80-132) [non mneumonic]
  353.     /L     Lines per page (0=non-paged, 10-66)
  354.     /M     expand Macros in tree diagram
  355.     /N     max Nest level for tree diagram (2-16)
  356.     /P     Printer type
  357.     /Q     Quiet (1 = quiet)
  358.     /R     Register usage info for procedures (0-2)
  359.     /S     Stack summary info
  360.     /T     Tree (0-3)
  361.     /W     Warnings
  362.     /X     Xref by procedure (0-6)
  363.  
  364.     See the menu choices in the previous section for
  365.     a description of choices.  Zero corresponds to the
  366.     none or off condition.
  367.  
  368.  
  369.  
  370.   The source file
  371.  
  372.     The first parameter (source) is required.  If no file
  373.     extension is given then .ASM is assumed.  Full path names and
  374.     wild cards are allowed.
  375.  
  376.     If the source file name is preceeded by an at sign (@) then
  377.     the file is assumed to be a file that contains a list of the
  378.     files to process.  No file extension is assumed for an @file.
  379.     The filenames in the file can have full path names, but no
  380.     wild cards.  A file type of .ASM is assumed for each file in
  381.     the list.
  382.  
  383.     If the source file name is preceeded by a dollar sign ($)
  384.     then this file is assumed to be a MAKE file.  In this case
  385.     the make file is searched for each object (.OBJ) file
  386.     dependancy that includes an .ASM file as the first dependant
  387.     source.
  388.  
  389.   Procedure names
  390.  
  391.     Procedure names may be listed after the source file name.  Up
  392.     to ten procedures may be listed.  If any procedures are
  393.     listed, then information about only the listed procedures is
  394.     displayed, otherwise all procedures are displayed.
  395.  
  396.  
  397.  
  398.                       Compatibility Notes
  399.  
  400.     Code for 8086/88, 80186/88, 80286, 80386, 8087, 80287
  401.     and 80387 processors is supported.  Although there are
  402.     no error messages, you should use proper assembly
  403.     directives to enable code for anything other than
  404.     8086/87/88, especially 80386/387.  Protected mode code
  405.     is fully supported.  Clock cycle and timing information
  406.     is calculated only for 8088/87, 80286/287, 80386/387.
  407.     Note that 8086 machine cycles are the same as 8088 except
  408.     that 16-bit memory accesses are faster (4 or 5 cycles)
  409.     and the pre-fetch queue is larger.
  410.  
  411.     Macros are supported, except that they are not expanded.
  412.     Optionally, macros may be displayed as though they are
  413.     CALLs in the tree diagram.  Macros should not contain
  414.     directives expected to affect program assembly, such as
  415.     INCLUDE directives.
  416.  
  417.     REPT, IRP and IRPC directives are allowed, but the code
  418.     is not expanded.
  419.  
  420.     Conditional assembly directives are allowed, except that
  421.     none of the conditions are evaluated, thus all possible
  422.     code branches are displayed.
  423.  
  424.     Conditional error directives are allowed, but no errors
  425.     are produced.
  426.  
  427.     %OUT directives cause the line to be displayed, during
  428.     both passes, just as in MASM.
  429.  
  430.     Include files are fully supported.  For internal error
  431.     message processing purposes these are limited to a
  432.     nesting level of 3.  Note that there may be as many
  433.     non-nested include files as you like.  The environment
  434.     string 'SET INCLUDE=' is used just as it is in MASM.
  435.  
  436.     The INCLUDELIB assembly directive is accepted, but has no
  437.     affect since this is used by the linker.
  438.  
  439.     All the MASM 5.x simplified segment directives are
  440.     supported.
  441.  
  442.     Procedures may not be nested.  Although MASM allows
  443.     nesting of procedures this is not allowed.  Each PROC
  444.     directive must be followed by a matching ENDP directive.
  445.